package com.asa.cc;


/**
 * mysql
 * @author Administrator
 *
 */
public class G {

	
	
	/**
	 * mysql
	 * mkdir -p /data/mysql/{log.data.conf}
	 * docker pull mysql:5.7
	 * 
	 * 
	 * docker run -p 3307:3306 --name mysql \
		-V /data/mysql/log:/var/log/mysql \
		-V /data/mysql/data:/var/lib/mysql \
		-V /data/mysql/conf:/etc/mysql \
		-e MYSQL_ROOT_PASSWORD=root \
		-d docker.io/mysql:5.74

	 * 
	 * 
	 * 慢日志的配置
	 * 路径在
	 * 		window在mysql的安装目录下，文件名my.ini
	 * 		linux /etc/my.cnf
	 * 用docker时有点不同
	 * 		docker inspect mysql	查看一下挂载
	 * 		/data/mysql/data可以看到这个，这个是之前启动容器时我们自己配置的
	 * 
	 * 
	 * 
	 * 和慢日志有关的有四个变量
		[mysqld]
		slow-query-log-file=/application/mysql/data/logs/slow query_log.txt #慢日志文件
		存放路径
		long_query_time=1
		#指定慢日志时长
		slow_query_log=1
		#是否开启慢日志查询1开启0关闭
		log_output= 'FILE' #表示将慢日志输出到文件中，'TABLE'表示将慢日 志输出到数据
		库表中，这样慢日志信息就会被写入到msql.slow_log表中，默认值是'FILE'
	 * 
	 * 
	 * 
	 * [mysql]章设置mysql客户端默认字符集
			default-character-set=utf8
			[mysq1d] skip-name-resolve
			slow-query-log-file= /var/log/mysql/slow_.query_log.txti#慢日志文件存放路径
			long_query_time=1指定慢 日志时长
			slow_query_1og=1
			是否开启慢日志查询1开启0关闭
			1og_output='FILE'
			表示将慢日志输出到文件中，'TABLE'表示将慢 日志输出到数据库表中，这样慢日志信息就会被写入到msql.sl.
			#设置3306端口
			port =3306
			#设置mysql的安装目录
			basedir=/vax/lib/mysgl
			#设置mysq1数据库的数据的存放目录
			datadir=/var/1ib/mysq1/
			#允许最大连接数
			max_connections=200
			#服务端使用的字符集默认为8比特编码的latin1字符集
			character-set-server= utf8
			#创建新表时将使用的默认存储引擎
			default-storage-engine= INNODB
			1ower_case_table_names=1
			max_allowed_packet=16M

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 慢SQL日志配置
			命令行查询慢日志设置:
			SHOW VARIABLES LIKE "%slow_query_log%"; //查看慢日志是否开启，ON-开启
			OFF-关闭
			SHOW VARIABLES LIKE "%long_query_time%";//查看慢日志时长
			
			命令行修改慢日志设置:
			set global slow query_log=0
			#是否开启慢日志查询1-开启0-关闭
			set global long_query_time=1; 
			注意: set命令只对当前数据库生效，如果mysq|重 启后则会失效。如果要永久生效，就必须修改配置文
			件my.cnf (其他变量也是如此)

	 * 
	 * 做一个例子
	 * 		select sleep(2)
	 * 
	 * 		如果想放入到数据库中（不过还是放在文件中比较好）
	 * 			SHOW VARIABLES LIKE "%log_output%";	可以看到慢sql日志所放的位置，
				set global log_output='table'
	  			
				select * from mysql.slow_log
	 * 
	 * MYSQLLdumpslow工具来做分析
	 * 它是mysql自带的
	 * 
	 * 
	 * MYSQLLdumpslow -s t /data/mysql/log/slow_query_log.txt
	 * 
	 * 
	 * 把执行时间最长前1的放入到文档中
MYSQLLdumpslow -s t -t 1 /data/mysql/log/slow_query_log.txt >/data/mysql/log/slow_query.bak

		排序，倒序
MYSQLLdumpslow -s c /data/mysql/log/slow_query_log.txt


	CREATE TABLE employees(
	id int(11) NOT NULL AUTO_INCREMENT,
	name varchar(24) NOT NULL DEFAULT '' COMMENT "姓名",
	age int(11) NOT NULL DEFAULT '0' COMMENT "年龄",
	position varchar(20) NOT NULL DEFAULT '' COMMENT "职位",
	hire_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT "入职时间",
	PRIMARY KEY (id),
	KEY idx_name_age_position(name , age , position) USING BTREE
	) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT="员工记录表";

#批量添加测试数据
DROP PROCEDURE IF EXISTS insert_data;
DELIMITER $$
CREATE PROCEDURE insert_data(IN num_limit INT,IN NAME VARCHAR(50))
	BEGIN
		DECLARE i INT DEFAULT 1;
		WHILE i <= num_limit DO
			IF i%3=0 THEN
				INSERT INTO employees(NAME , age, POSITION,hire_time) VALUES(CONCAT(NAME,"_",i),ROUND(RAND()*50)+18,'manager',NOW());
			ELSEIF i%3=1 THEN
				INSERT INTO employees(NAME , age, POSITION,hire_time) VALUES(CONCAT(NAME,"_",i),ROUND(RAND()*50)+18,'dev',NOW());
			ELSE
				INSERT INTO employees(NAME , age, POSITION,hire_time) VALUES(CONCAT(NAME,"_",i),ROUND(RAND()*50)+18,'test',NOW());
			END IF;
			SET i = i+1;
		END WHILE;
	END
$$
DELIMITER;



CALL insert_data(10000,"asa")

SELECT COUNT(*) FROM employees
SELECT * FROM employees

EXPLAIN SELECT * FROM employees WHERE NAME LIKE "asa%" LIMIT 10




	 */
	
	
	
	
	
	
	
}
